以上缺點在其他未加密協定也會存在。
根據 TCP / IP 的工作機制,通訊不加密表示所有通訊線路上的資料都有可能被窺視。
網路是連接到全世界的網路組成,因此通訊線路上的電腦、光纖及其他網路上都不可能是個人所有,所以可能在某個環節上被遭到窺視。
即使經過加密處理,也會被窺視到通訊內容,跟未加密的訊息差別在於,加密的訊息有可能讓人無法理解 HTTP 訊息含義,但加密過後的訊息還是有可能被看到。
HTTP 協議中的請求與回應不會對通訊方進行確認,也就是可能會發生伺服端或客戶端的其中一方是偽造的狀況。
任何人都可發送請求
在 HTTP 通訊中,由於不存在確認通訊方的處理步驟,在 IP 位置和埠號沒限制的狀況下,無論是誰發送請求,伺服端都會接收請求,所以可能有以下的隱患:
查明對方的憑證
雖然 HTTP 無法確認對方身份,可是 SSL 可以,而且使用了憑證的方法來確認。憑證由第三方機構頒發,來證明客戶端和伺服端是真實存在。因為偽造憑證很困難,所以確認對方的憑證就可以判斷,而且對使用者來說可以減少訊息洩漏的危險。
這邊的完整性講的是訊息的準確度。
如果在傳輸過程中使用未加密明文,那麼在頁面上串金流就也可能會被竊聽,那一些金融資料就可能會被曝露,另外沒辦法確認對方身份也很麻煩,所以為了統一解決上述問題,就需要在 HTTP 上做加密處理,因此把加密及認證機制稱作 HTTPS。
https://...
HTTPS 不算是在應用層的新協議,只是通訊端用 SSL 和 TLS 協議替代,通常使用 HTTP 是直接和 TCP 層通訊,但 HTTPS 使用 SSL ,就變成 SSL 在跟 TCP 通訊,這樣的感覺就像在 TCP 和 HTTP 中間多了一層 SSL。
SSL 是獨立於 HTTP 協議,所以應用層的 SMTP 和 Telent 等等協議都可以配合。
SSL 採用公開密鑰加密的加密處理方式,現在的加密方法是公開的,但是密鑰是保密的,加密和解密都會用到密鑰,換句話說有密鑰就可以解密。
加密和解密共用同個密鑰叫做共享密鑰加密,又稱為密鑰加密。
以共享密鑰加密的方式把密鑰傳送給對方,但在傳送的過程也可能會被遭到攻擊,如果密鑰被攻擊者知道就失去意義,那我們該如何安全傳輸密鑰呢?
使用兩把密鑰的公開密鑰加密
公開密鑰加密的方式解決了共享密鑰加密的困難。
公開密鑰加密:有一把非對稱的密鑰,一把叫做私有密鑰(私鑰),一把叫做公開密鑰(公鑰),意思就是私有密鑰不能給別人知道,公開密鑰可以讓任何人知道。
過程:發送密文的那方使用接收方的密鑰進行加密處理,對方收到加密的訊息再用自己的私鑰進行解密。
這樣的方式就不用擔心訊息被竊盜,另外如果想根據密文和公鑰來解密是非常困難的,因為解密的過程就是對離散數學求值,密碼還是有機會遭到破解,但就現在的技術而言是不太可能的。
HTTPS 採用混合加密機制
HTTPS 採用共享密鑰加密和公開密鑰加密兩者並用的混合加密機制,如果密鑰能夠安全交換,那麼就有可能會用公開密鑰的方式來進行通訊,但公開密鑰比共享密鑰加密的方式還慢。
公開密鑰還是有問題,就是無法證明公開密鑰本身的真實性,舉例來說:
準備和某台主機建立公開密鑰加密的方式,來進行通訊傳輸,如何確認公開密鑰就是原本那台伺服器發送的公開密鑰,因為有可能在公開密鑰傳輸的過程中被攻擊者替換。
為了解決上述問題,可以使用數位憑證認證機構,與相關機關頒發的公開密鑰證書。
數位憑證的公鑰要安全地交給客戶端是困難的事,因此瀏覽器商在發布版本的時候,會事先在內部植入常用的數位憑證機構的公鑰。
客戶端作業順序:
伺服端作業流程:
憑證是來證明其中一方的身份,再來就是確認伺服器規模。擁有該特性的憑證就是 EV SSL 憑證。
EV SSL 數位憑證基於國際標準,嚴格規定了對營運組織的確認方針,因此通過的網站可以獲得比較高的認可度。擁有 EV SSL 數位憑證的瀏覽器,在瀏覽器 URL 欄位的背景色是綠色,為的是防止釣魚攻擊。
用以確認客戶端的客戶端證書
HTTPS 中還可以使用客戶端憑證,證實伺服器正在通訊的那方是預期的客戶端,作用和伺服端憑證相同,但仍然有幾個問題點:
認證機構信譽第一
SSL 機制之所以可行,是因為認證機構是可被信賴的,之前在荷蘭有被爆出憑證機構被駭客入侵。雖然現在有將憑證吊銷的機制,以及從客戶端刪除憑證發布機構的對策,但距離完全實現還需要一點時間。
由自認證機構頒發的證書稱為自簽名證書
使用 Open SSL 每個人可以建立自己的數位憑證,給自己的伺服器憑證,但在網路上是不可以使用,如果瀏覽器訪問該網站就會出現「無法確認連接安全」或「此網站憑證存在問題」等等,主要是因為無法消除偽裝可能性的關係。
為什麼不一直用 HTTPS 就好?其實只要與個人資訊相關等敏感資料再做加密通訊就好,除了上述缺點外,節約開銷也是重點。
資料來源:《圖解 HTTP》 上野宣 人民郵電出版社
筆記純屬推廣及分享,如有侵權,請告知。
Please advise to remove immediately if any infringement caused.